#!/usr/bin/python
# -*- coding: UTF-8 -*-

import random

""" 
@version: 1.0
@author: jin.li.o
@license: Apache Licence 
@contact: x.leevin@gmail.com
@software: PyCharm
@file: demo_game.py
@time: 2018/10/30
"""


# 3.人和机器猜拳游戏写成一个类，有如下几个函数：
# 1）函数1：选择角色1 曹操 2张飞 3 刘备
# 2）函数2：角色猜拳1剪刀 2石头 3布 玩家输入一个1-3的数字
# 3）函数3：电脑出拳 随机产生1个1-3的数字，提示电脑出拳结果
# 4）函数4：角色和机器出拳对战，对战结束后，最后出示本局对战结果...赢...输,然后提示用户是否继续？按y继续，按n退出。
# 5）最后结束的时候输出结果 角色赢几局 电脑赢几局，平局几次 游戏结束


class Game:
    dict_role = {1: "曹操", 2: "张飞", 3: "刘备"}
    dict_rule = {1: "剪刀", 2: "石头", 3: "布"}

    people_win_count = 0
    computer_win_count = 0
    place_count = 0

    def get_role(self, index):
        for item in self.dict_role.keys():
            if item == index:
                result = self.dict_role.get(index)
                print("get role: {0}".format(result))
                return result

    def get_rule(self, index):
        for item in self.dict_rule.keys():
            if item == index:
                result = self.dict_rule.get(index)
                print("get rule: {0}".format(result))
                return result

    def play_with_computer(self):
        index = random.randint(1, 3)
        print("index: {0}".format(index))
        res = self.get_rule(index)
        print(res)

    def play(self):
        condition = 'y'
        while condition == 'y':
            input_str = input("请选择人物「 1 曹操 2张飞 3 刘备 」：")
            if input_str.isdigit():
                role_index = int(input_str)
                if 1 <= role_index <= 3:
                    self.compare(role_index, random.randint(1, 3))
                else:
                    print("请输入正确的游戏规则「 1剪刀 2石头 3布 」")
            else:
                print("请输入数字")

            input_str2 = input("是否继续？「 按y继续，按n退出 」")
            condition = input_str2
        else:
            print("角色赢了{0}局,电脑赢了{1}局,平局{2},游戏结束！".format(self.people_win_count, self.computer_win_count,
                                                         self.place_count))

    def compare(self, role_index, computer_index):
        print("role_index: {0},computer_index: {1}".format(role_index, computer_index))
        role_name = self.dict_role.get(role_index)
        if role_index > computer_index:
            self.people_win_count += 1
            print("{0},你赢了。".format(role_name))
        elif computer_index > role_index:
            self.computer_win_count += 1
            print("电脑赢了。")
        else:
            self.place_count += 1
            print("平局了。")


if __name__ == '__main__':
    game = Game()
    game.play()
